System and method for testing causality of tabulated S-parameters

ABSTRACT

A system. The system includes a computing device having a processor, and a causality checker module communicably connected to the processor. The causality checker module is configured to utilize a rational function approximation to a frequency response to determine if a transfer function of a linear time invariant system is causal.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit under 35 U.S.C. §119(e) of the earlier filing date of U.S. Provisional Patent Application No. 61/650,028 filed on May 22, 2012.

BACKGROUND

This application discloses an invention which is related, generally and in various embodiments, to a system and method for testing causality of tabulated S-parameters.

It is known to utilize scattering parameters (S-parameters) to describe the electrical behavior of linear electrical networks. In the S-parameter approach, the electrical network is treated as a black box which contains various interconnected electrical circuit components which interact with other electrical circuits through ports. The electrical network can be represented by a square matrix of complex numbers (its S-parameter matrix) which can be used to calculate the network's response to signals applied to the ports.

It is also known to test S-parameters for the proper cause/effect relationship (causality). With respect to such electrical networks, a basic requirement of causality is that after a stimulus has been applied to the electrical network, the electrical network's response to the applied stimulus must occur after the application of the stimulus. During transient simulation of S-parameters, a macromodel approximating the S-parameters is utilized. However, if the S-parameters are actually noncausal, the simulation results obtained using the macromodel will likely not accurately reflect the actual electrical behavior of the network.

Testing causality of tabulated frequency data is based on the property that only a causal frequency response is invariant upon applying the generalized Hilbert transform (GHT). However, this property has been difficult to verify for tabulated data (data known for finite number of frequencies in a finite bandwidth), because the GHT requires knowledge of frequency response at all frequencies in infinite bandwidth.

A first known method, described in the publication “Robust causality characterization via generalized dispersion relations,” IEEE Trans. Advanced Packaging, Vol. 31, No. 3, August 2008 authored by P. Triverio and S. Grivet-Talocia (hereinafter “the Triverio method”) removed this difficulty by proposing an algorithm that accounted for errors due to both finite bandwidth (corresponding error is referred to as the truncation error) and finite number of frequencies (referred to as the discretization error). Specifically, it provided a closed-form expression for a tight upper bound for the truncation error, and this bound can be used to arbitrarily control the truncation error. It accounted for the discretization error by accounting for the error in the numerical integration, used in the evaluation of the GHT.

However, the Triverio method is not clear about another source of discretization error: the interpolation error. Each tabulated frequency response needs to be interpolated because of the continuous nature of the integration in the GHT. This interpolation introduces an additional error in the GHT calculation on top of the numerical integration error. When this interpolation error is not accounted for, the bound for the discretization error is underestimated, which can result in a false positive outcome (i.e., a causal tabulated frequency response falsely declared as noncausal).

A second known method, described in the publication “Analytical integration-based causality checking of tabulated S-parameters,” IEEE Conference on Electrical Perf. of Electronic Packag., October 2010 authored by S. Asgari, S. N. Lalgudi, and M. Tsuk (hereinafter “the Asgari method”), includes the contribution from interpolation error in the discretization error, through a different formulation. In this formulation, tabulated frequency response is first interpolated through cubic-splines, and the test on tabulated frequency response is converted to an equivalent test on the interpolation function. Because of this equivalency and the polynomial nature of the interpolating function, a closed-form expression for the GHT is derived in terms of the spline coefficients. As a result, numerical integration needed in the Triverio method to evaluate the GHT is avoided, making the interpolation error the only contribution to the discretization error. The discretization error bound is, then, calculated similar to the Triverio method by varying the interpolation functions in place of the numerical integration rules.

However, the closed-form expressions for numerical GHT in the Asgari method can produce unbounded values if tabulated frequencies are highly nonuniformly spaced, like in logarithmically-spaced frequencies.

The formulation associated with the Asgari method is now described in the context of determining whether or not a given frequency response is causal. Consider a frequency response H(jω) of a linear time-invariant (LTI) system that is only known for tabulated frequencies {f_(k)}N_(fk)=1, where f₁=0, fk<f_(k+1), and N_(f) is the total number of frequencies. The symbol ω is the angular frequency, where ω=2πf.

The solution to the problem of determining whether or not H(jω) is casual is based on the generalized Hilbert transform of H(jω):

$\begin{matrix} {{{H_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{H}\left( {j\;\omega} \right)} + {\frac{\prod\limits_{q = 1}^{n}\;\left( {\omega - {\overset{\_}{\omega}}_{q}} \right)}{j\;\pi}\mspace{11mu}{\int{{- \frac{{H\left( {j\;\omega^{\prime}} \right)} - {\mathcal{L}_{H}\left( {j\;\omega^{\prime}} \right)}}{\prod\limits_{q = 1}^{n}\;\left( {\omega^{\prime} - {\overset{\_}{\omega}}_{q}} \right)}}\frac{\mathbb{d}\;\omega^{\prime}}{\omega - \omega^{\prime}}}}}}},} & (1) \end{matrix}$ where n is the number of subtraction points, and {ω _(q)}^(n) q=1 are the subtraction points spread over the interval Ω=[−ω_(max), ω_(max)], where ω_(max)=2πf_(max), and f_(max)=f_(Nf). In equation (1), the symbol f denotes the integral according to the Cauchy principal value. The term L_(H)(jω) in equation (1) is the Lagrange interpolation polynomial for H(jω):

$\begin{matrix} {{\mathcal{L}_{H}\left( {j\;\omega} \right)} = {\sum\limits_{q = 1}^{n}\;{{H\left( {j\;{\overset{\_}{\omega}}_{q}} \right)}{\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\;{\frac{\omega - {\overset{\_}{\omega}}_{p}}{{\overset{\_}{\omega}}_{q} - {\overset{\_}{\omega}}_{p}}.}}}}} & (2) \end{matrix}$

Using the GHT, a procedure to detect noncausality can be devised: If and only if H(jω) is causal, H_(n)(jω) from equation (1) is equal to H(jω); thus, if the magnitude of the error Δ_(n)(jω)=H _(n)(jω)−H(jω)  (3) is zero, then H(jω) is declared causal; else, it is declared noncausal.

However, as only tabulated values of H(jω) are available, H_(n)(jω) cannot be computed exactly; only an approximation, say

{tilde over (H)}_(n)(jω), to it can be. As a result, the magnitude of the error {tilde over (Δ)}_(n)(jω)={tilde over (H)} _(n)(jω)−H(jω)  (4) can be nonzero even for a causal H, causing a confusion about the causality of H(jω). Therefore, the above detection procedure has to be modified to make a detection based on {tilde over (Δ)}_(n)(jω).

Any procedure to test causality of tabulated data should account for two sources of errors: (a) the (truncation) error due to not knowing H(jω_(k)) outside Ω (outside the interval Ω=[−ω_(max), ω_(max)]), and (b) the (discretization) error due to not having continuous values of H(jω_(k)) inside Ω (inside the interval Ω=[−ω_(max), ω_(max)]). The procedure to account for the truncation error is the same as that of the Triverio method and is described next. However, unlike the Triverio method, the Asgari method works with a simplified version of equation (1). It can be shown that equation (1) is same as

$\begin{matrix} {{H_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{H}\left( {j\;\omega} \right)} + {\frac{\prod\limits_{q = 1}^{n}\;\left( {\omega - {\overset{\_}{\omega}}_{q}} \right)}{j\;\pi}{\int{{- \frac{H\left( {j\;\omega^{\prime}} \right)}{\prod\limits_{q = 1}^{n}\;\left( {\omega^{\prime} - {\overset{\_}{\omega}}_{q}} \right)}}{\frac{\mathbb{d}\;\omega^{\prime}}{\omega - \omega^{\prime}}.}}}}}} & (5) \end{matrix}$ As H(jω) is not known outside Ω, it is only possible to evaluate equation (5) within Ω. If Ĥ_(n)(jω) denotes the result of this evaluation, then

$\begin{matrix} {{{\hat{H}}_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{H}\left( {j\;\omega} \right)} + {\frac{\prod\limits_{q = 1}^{n}\;\left( {\omega - {\overset{\_}{\omega}}_{q}} \right)}{j\;\pi}{\int_{\Omega}{{- \frac{H\left( {j\;\omega^{\prime}} \right)}{\prod\limits_{q = 1}^{n}\;\left( {\omega^{\prime} - {\overset{\_}{\omega}}_{q}} \right)}}{\frac{\mathbb{d}\;\omega^{\prime}}{\omega - \omega^{\prime}}.}}}}}} & (6) \end{matrix}$ The truncation error, denoted as E_(n)(jω), is the difference between Ĥ_(n)(jω) and H_(n)(jω), i.e.,

$\begin{matrix} {{E_{n}\left( {j\;\omega} \right)} = {{{\hat{H}}_{n}\left( {j\;\omega} \right)} - {H_{n}\left( {j\;\omega} \right)}}} & \mspace{20mu} \\ {\mspace{76mu}{= {\frac{\prod\limits_{q = 1}^{n}\;\left( {\omega - {\overset{\_}{\omega}}_{q}} \right)}{j\;\pi}{\int_{\Omega^{C}}{\frac{- {H\left( {j\;\omega^{\prime}} \right)}}{\prod\limits_{q = 1}^{n}\;\left( {\omega^{\prime} - {\overset{\_}{\omega}}_{q}} \right)}{\frac{\mathbb{d}\;\omega^{\prime}}{\omega - \omega^{\prime}}.}}}}}} & (7) \end{matrix}$ This error can be controlled by increasing or decreasing n.

For the discretization error, the Asgari method follows a procedure similar to the Triverio method. Knowing a functional form of H(jω) is necessary to compute equation (6). Because only tabulated values can be and are known, the H(jω_(k)'s) have to be interpolated (or approximated) between ω_(k)'s. If H(jω) denotes this approximation, then the resulting evaluation of equation (6) gives the quantity {tilde over (H)}_(n)(jω) in equation (4). The discretization error, denoted as D_(n)(jω), is defined as it was in the Triverio method: D _(n)(jω)={tilde over (H)} _(n)(jω)−Ĥ _(n)(jω).  (8) The error {tilde over (Δ)}_(n)(jω) in equation (4) can be shown to be {tilde over (Δ)}_(n)(jω)=Δ_(n)(jω)+E _(n)(jω)+D _(n)(jω).  (9) In the Triverio method, closed-form expression for tightest upper bound, denoted as T_(n)(ω) for |E_(n)(jω)| is utilized. The expression for this bound is shown below

$\begin{matrix} {{{T_{n}(\omega)} = {\frac{1}{\pi}{\sum\limits_{q = 1}^{n}\;{\left\lbrack {{\ln\frac{{\omega_{\max} - {\overset{\_}{\omega}}_{q}}}{{\omega_{\max} - \omega}}} - {\left( {- 1} \right)^{n}\ln\frac{{\omega_{\max} + {\overset{\_}{\omega}}_{q}}}{{\omega_{\max} + \omega}}}} \right\rbrack \times {\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\frac{{\omega - {\overset{\_}{\omega}}_{p}}}{{\overset{\_}{\omega}}_{q} - {\overset{\_}{\omega}}_{p}}}}}}},} & (10) \end{matrix}$

If {tilde over (D)}_(n)(ω) denotes an estimate for |D_(n)(jω)|, then per the Triverio method, H(jω) is declared as noncausal if |{tilde over (Δ)}_(n)(jω _(k))|>T _(n)(ω_(k))+{tilde over (D)} _(n)(ω_(k))∃k.  (11) Since the test is with regard to an amplitude, say A, the right hand side of inequality (11), denoted as E^(tot) _(n)(ω_(k)), should first be made less than or equal to A, i.e., E ^(tot) _(n)(ω_(k))=T _(n)(ω_(k))+{tilde over (D)} _(n)(ω_(k))≦A ∀k.  (12) If inequality (12) is not met, then the frequency steps in the tabulated data are not small enough to check for inequality (11); in this event, the data should be regenerated with subsequently smaller frequency steps until inequality (12) is satisfied.

In the Asgari method, the quantity {tilde over (D)}_(n)(ω) is computed by subtracting {tilde over (H)}_(n)(jω)'s from two different interpolation functions. That is, {tilde over (D)} _(n)(ω)≈|{tilde over (H)} _(n) ^(μ) ¹ (jω)−{tilde over (H)} _(n) ^(μ) ² (jω)|,  (13) where μ₁ and μ₂ are two different interpolating functions. The quantity {tilde over (H)}_(n)(jω) can be computed without numerical integration if H(jω) is approximated as a piecewise polynomial:

$\begin{matrix} {{{{H\left( {j\;\omega} \right)} \approx {\overset{\_}{H}\left( {j\;\omega} \right)}} = {\sum\limits_{k = {- N_{f}}}^{N_{f} - 1}\;{\underset{\underset{{\overset{\_}{H}}_{(k)}{({j\; w})}}{︸}}{\sum\limits_{l = 0}^{L}\;{a_{k,l}\left( {\omega - \omega_{k}} \right)}^{l}}{1_{\Omega}}_{k}(\omega)}}},} & (14) \end{matrix}$ where the symbol L is the maximum order of the piecewise polynomial (e.g., L=3 for cubic splines), the symbol Ω_(k) denotes the interval [ω_(k), ω_(k+1)], the symbol 1_(Ωk)(ω) is the indicator function of ω, defined as one for ω∈Ω_(k) and as zero elsewhere, and α_(kl)∈C is the spline coefficient corresponding to the kth interval and the lth power of ω. When H(jω) from equation (13) is substituted for H(jω) in equation (6), and the terms in the resulting equation are separated using partial fractions and subsequently analytically integrated, one gets H _(n)(jω):

$\begin{matrix} {{{{\overset{\sim}{H}}_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{\overset{\_}{H}}\left( {j\;\omega} \right)} + {\frac{1}{j\;\pi}{\sum\limits_{k = {- N_{f}}}^{N_{f} - 1}\left( {{{{\overset{\_}{H}}_{(k)}\left( {j\;\omega} \right)}\;{{??}\left( {\omega,\omega_{k},\omega_{k + 1}} \right)}} - {\sum\limits_{q = 1}^{n}\;{{{\overset{\_}{H}}_{(k)}\left( {j\;\omega_{q}} \right)}{{??}\left( {\omega_{q},\omega_{k},\omega_{k + 1}} \right)}{\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\frac{\omega - \omega_{p}}{\omega_{q} - \omega_{p}}}}}} \right)}}}},} & (15) \\ {\mspace{79mu}{where}} & \; \\ {\mspace{79mu}{{{??}\left( {\omega,\omega_{k},\omega_{k + 1}} \right)} = {\ln{{\frac{\omega_{k} - \omega}{\omega_{k + 1} - \omega}}.}}}} & (16) \end{matrix}$ In the Asgari method, μ₁ is chosen as cubic spline interpolation, and μ₂ as piecewise cubic Hermite interpolation polynomial (PCHIP).

There are drawbacks to the Asgari method. Computing H _((k))(jω) in equation (15) requires extrapolation outside Ω_(k) if ω is not ∈Ω_(k), as can be observed from the definition of H _((k))(jω) in equation (14). This extrapolation can sometimes result in unbounded values for {tilde over (H)}_(n)(jω) in equation (15). This drawback is the consequence of using a closed form expression-based formulation along with a piecewise function. Also, because of the limited accuracy of piecewise polynomials, resolution of the causality checker is limited for given tabulated data. Thus, in view of the above, the overall effectiveness of the Asgari method is less than desired.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are described herein in by way of example in conjunction with the following figures, wherein like reference characters designate the same or similar elements.

FIG. 1 illustrates various embodiments of a system;

FIG. 2 illustrates various embodiments of a computing system of the system of FIG. 1;

FIGS. 3A, 3B, 4A, 4B and 5 show improved results realized by using the system of FIG. 1; and

FIG. 6 illustrates various embodiments of a method.

DETAILED DESCRIPTION

It is to be understood that at least some of the figures and descriptions of the invention have been simplified to illustrate elements that are relevant for a clear understanding of the invention, while eliminating, for purposes of clarity, other elements that those of ordinary skill in the art will appreciate may also comprise a portion of the invention. However, because such elements are well known in the art, and because they do not facilitate a better understanding of the invention, a description of such elements is not provided herein.

As described in more detail hereinbelow, aspects of the invention may be implemented by a computing device and/or a computer program stored on a computer-readable medium. The computer-readable medium may comprise a disk, a device, and/or a propagated signal.

FIG. 1 illustrates various embodiments of a system 10. The system 10 may be utilized to determine causality of any transfer function of linear time invariant systems. For purposes of simplicity, the system 10 will be described in the context of being utilized to determine causality of tabulated S-parameters (i.e., S-parameters for tabulated frequency responses). As described in more detail hereinbelow, the system 10 is configured to determine the causality in a manner similar to that disclosed by the Asgari method, but is different in that the system 10 is configured to use a global (i.e., nonpiecewise) rational function approximation for tabulated frequency responses. As the tabulated frequency response can be noncausal, the rational function is allowed to have both positive and negative real parts.

It will be appreciated that because of better approximation properties of rational functions over piecewise polynomials, the resolution (defined as smallest noncausal violations that can be detected for the given tabulated frequencies) provided by the system 10 is improved over that provided by the Asgari method. Also, by utilizing global rational functions, the system 10 does not produce unbounded values as can be produced by the Asgari method if tabulated frequencies are highly nonuniformly spaced. Furthermore, though global rational functions lead to a potential approximation problem (as opposed to an interpolation problem), they lead to a more accurate GHT result.

As used herein, the following words, phrases and symbols mean the following:

-   -   1) tabulated frequency response refers to frequency response         presented in a tabular form.     -   2) data usually refers to multi-port data, and sometimes refers         to multi-port tabulated frequency responses.     -   3) f refers to arbitrary linear frequency, given in Hertz.     -   4) ω refers to the angular frequency corresponding to

${{f\text{:}\mspace{11mu}\omega} = {2\pi\; f}},{{{where}\mspace{14mu}\pi} = {\frac{22}{7}.}}$

-   -   5) f_(k) denotes kth frequency in the Touchstone file.     -   6) f_(max) denotes the maximum frequency in the Touchstone file.         This frequency is same as the last frequency in the Touchstone         file.     -   7) N_(f) refers to the total number of frequencies in the         Touchstone data.     -   8) N_(ports) refers to the total number of ports in the         Touch-stone data.     -   9) scattering parameters or S-parameters are one kind of linear         network parameters.     -   10) H(jω) is the frequency response at angular frequency ω. The         symbol j is equal to √{square root over (−1)}. The argument jω         in H(jω) implies that H(jω) is complex. For the S-parameter         application described herein, H(jω) refers to a port-to-port         scattering parameter.     -   11) H(jω_(k)) denotes H(jω) for ω=ω_(k).     -   12) n refers to the number of Subtraction points (or         frequencies).     -   13) f _(q) refers to the qth Subtraction point or frequency.     -   14) ω _(q):ω _(q)=2π f _(q).     -   15) A is the minimum amplitude of noncausality that needs to be         detected in data.     -   16) ∈ is the fraction of bandwidth for which causality test need         not be done.     -   17) H(jω) is the continuous approximation of tabulated frequency         response H(jω_(k)) in the closed interval ω∈[−ω_(max),ω_(max)].     -   18) H_(n)(jω) is the analytical generalized Hilbert transform         (GHT) of H(jω).     -   19) Ĥ(jω):H_(n)(jω) evaluated with finite-bandwidth tabulated         response.     -   20) E_(n)(jω) is the error between H_(n)(jω) and Ĥ_(n)(jω) This         error is also known as the truncation error.     -   21) T_(n)(jω) is the tight upper bound for E_(n)(jω) and is         denoted as the truncation error bound. {tilde over (H)}_(n)(jω):         numerically approximation to finite-bandwidth GHT Ĥ_(n)(jω).     -   22) {tilde over (D)}_(n)(ω) is the error in computing Ĥ_(n)(jω)         numerically. This error is also known as the discretization         error.     -   23) {tilde over (D)}_(n)(ω) is an estimate for the upper bound         of |D_(n)(jω)|.     -   24) Δ_(n)(jω) is the difference between H(jω) and its         generalized Hilbert transform H_(n)(jω). This quantity is also         referred to as the ideal reconstruction error.     -   25) {tilde over (Δ)}_(n)(jω) is the difference between H(jω) and         {tilde over (H)}_(n)(jω). This quantity is referred to as the         reconstruction error.     -   26) μ1 refers to the first interpolation/approximation function         for H(jω_(k)).     -   27) μ2 refers to the second interpolation/approximation function         for H(jω_(k)).     -   28) target fitting error is the maximum value of the absolute         value of error between the approximation and the H(jω) at         ω_(k)'s.     -   29) δ₁ refers to target fitting error for μ₁.     -   30) δ₂ refers to target fitting error for μ₂.     -   31) N_(p) refers to the number of poles in the rational function         fit.     -   32) Pi refers to the ith pole in the rational function fit.     -   33) r_(i) refers to the ith residue in the rational function         fit.     -   34) d refers to the value of the rational function for ω=∞.     -   35) α is a real number between 0 and 1.     -   36) β is a real number between 0 and 1.     -   37) D_(target) is a real number. It is preferred that {tilde         over (D)}_(n)(ω_(k)) does not exceed D_(target).

The system 10 includes a computing system 12 which includes a processor 14, a storage device 16 and a causality checker module 18. The computing system 12 may include any suitable type of computing device (e.g., a server, a desktop, a laptop, etc.) that includes the processor 14. Various embodiments of the computing system 12 are described in more detail hereinbelow with respect to FIG. 2.

The causality checker module 18 is communicably connected to the processor 14, and is configured to check tabulated S-parameters for causality. The causality checker module 18 is configured to check for causality in a manner similar to that disclosed by the Asgari method, but is different in that the causality checker module 18 is configured to use a global (i.e., nonpiecewise) rational function approximation for tabulated frequency responses.

By using a global (i.e., nonpiecewise) rational function approximation in place of piecewise polynomials, the drawbacks associated with the Asgari method are avoided. The rational function approximation to H(jω) is given by

$\begin{matrix} {{{{H\left( {j\;\omega} \right)} \approx {\overset{\_}{H}\left( {j\;\omega} \right)}} = {{\sum\limits_{i = 1}^{N_{p}}\;\frac{r_{i}}{{j\;\omega} - p_{i}}} + d}},} & (17) \end{matrix}$ where r_(i) is the residue corresponding to the ith pole p_(i), d is the direct term, and N_(p) is the total number of poles. The quantities r_(i)'s. p_(i)'s and d can be obtained by algorithms such as vector fitting such as, for example, that disclosed in the in the publication “Rational Approximation of Frequency Domain Responses by Vector Fitting”, IEEE Trans. on Power Delivery, Vol. 14, No. 3, July 1999 authored by Bjorn Gustaysen. However, unlike in the traditional vector fitting, the poles p_(i)'s are not forced to be stable (e.g., the poles are allowed to have both positive and negative real parts). This relaxation on the poles enables the fitting error at the tabulated frequencies to be arbitrarily controlled. In general, any function utilized by the system 10 for approximating tabulated response for causality checking purposes should be able to approximate both causal and noncausal tabulated responses.

Substituting for H(jω) from equation (17) into equation (6), one gets the rational function counterpart to equation (15), namely:

$\begin{matrix} {{{\overset{\sim}{H}}_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{\overset{\_}{H}}\left( {j\;\omega} \right)} + {\frac{1}{j\;\pi}{\left( {{{\overset{\_}{H}\left( {j\;\omega} \right)}\;{{??}\left( {\omega,{- \omega_{\max}},\omega_{\max}} \right)}} - {\sum\limits_{q = 1}^{n}\;{{\overset{\_}{H}\left( {j\;{\overset{\_}{\omega}}_{q}} \right)}{{??}\left( {\omega_{q},{- \omega_{\max}},\omega_{\max}} \right)}{\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\frac{\omega - {\overset{\_}{\omega}}_{p}}{{\overset{\_}{\omega}}_{q} - {\overset{\_}{\omega}}_{p}}}}} + {\sum\limits_{i = 1}^{N_{p}}\;{\frac{r_{i}}{{j\;\omega} - p_{i}}{\ln\left( \frac{{j\; p_{i}} + \omega_{\max}}{{j\; p_{i}} - \omega_{\max}} \right)}{\prod\limits_{q = 1}^{n}\frac{\omega - {\overset{\_}{\omega}}_{q}}{{{- j}\; p_{i}} - {\overset{\_}{\omega}}_{q}}}}}} \right).}}}} & (18) \end{matrix}$ The second and third terms in equation (18) are similar to the corresponding terms in equation (15). The fourth term in equation (18) is new and is due to the integration of the partial fraction term containing 1/jω−p_(i). Unlike equation (15), equation (18) does not require extrapolation. Though equation (18) can still have unbounded values if p_(i)=jω_(k) or if p_(i)=jω _(q), such situations are avoided, as standard rational fitting procedures constrain the poles to have a nonzero real part.

The quantity {tilde over (D)}_(n)(ω) is computed as in equation (13) but by choosing μ₁ and μ₂ as two different rational function approximations to H(jω) with different approximation errors. Care should, however, be taken in finding these approximations. If the approximation errors are slightly different, then {tilde over (D)}_(n)(ω) will become large; as a result equation (12) may not be satisfied. If, on the other hand, the errors are almost the same, the interpolation error is not taken into account sufficiently, leading to a smaller value for {tilde over (D)}_(n)(ω).

This care can be taken if the target fitting errors for μ₁ and μ₂ are varied accordingly. The target fitting errors are chosen using the following heuristic. Because the target fitting error affects the bound {tilde over (D)}_(n)(ω), a target value for the bound {tilde over (D)}_(n)(ω) is first decided: if D_(target) denotes the target discretization error bound, then it is chosen as D _(target) =αA,  (19) where 0≦α≦1. In this work, α is set to 0.1. With the intention of meeting equation (12), n is chosen such that T _(n)(ω_(k))≦(1−α)A ∀k.  (20) The target fitting error for μ₁, namely δ₁, is chosen as a small fraction of D_(target), i.e., δ₁ =βD _(target),  (21) where 0≦β≦1. In this example, β is set to 0.2. The target fitting error for μ₂, namely δ₂, is chosen as a number significantly different from δ₁ yet not much greater than D_(target). In this example, δ₂=5δ₁,  (22) and A is chosen as 10⁻².

Let S_(i,j)(ω_(k)) denote the scattering parameter entry corresponding to ports i and j and at frequency ωk. Then, an exemplary step-by-step procedure implemented by the causality checker module 18 to test whether or not a S_(i,j)(jω) is causal is given in the exemplary algorithm described hereinbelow. For Nports>1, the following applies. The test for the multi-port data is declared inconclusive if the test is inconclusive for any S_(i,j); in this case, the test has to be repeated with a smaller frequency steps. The test for the multi-port data is declared conclusive if there are no entry with an inconclusive test. The multi-port data are declared noncausal if the test for the multi-port data is conclusive, and at least one entry is declared noncausal. The multi-port data are declared causal if the test for the multi-port data is conclusive, and all entries are declared causal.

The exemplary algorithm implemented by the causality checker module 18 to test whether or not a given tabulated frequency response is causal is as follows. Given tabulated scattering parameters (S-parameters) for frequencies in the closed interval [0, f_(max)], and given a maximum error δ_(fit) that can be tolerated between the tabulated frequency response and a causal macromodel to it (e.g., 0.01), and given a fraction of the bandwidth f_(max), where the fraction is represented as ∈ (e.g., 0.05):

-   -   1) Set A=δ_(fit)     -   2) Set α=0.1     -   3) Set β=0.2     -   4) Find the smallest even n such that the maximum value of         T_(n)(ω) in equation (10) in the frequency interval |ω|≦ω _(n)         satisfies the inequality (20).     -   5) With the n found, compute T_(n)(ω_(k)) for ω_(k)≦ω _(n).     -   6) Compute D_(target) based on equation (19).     -   7) Compute δ₁ based on equation (21).     -   8) Compute δ₂ based on equation (22).     -   9) Compute μ₁ from equation (17) with a target fitting error δ₁.     -   10) Compute μ₂ from equation (17) with a target fitting error         δ₂.     -   11) Compute {tilde over (H)}_(n)(jω_(k)) corresponding to μ₁         based on equation (18) and store the result in {tilde over         (H)}_(n) ^(μ) ² (jω_(k)).     -   12) Compute {tilde over (H)}_(n)(jω_(k)) corresponding to μ₂         based on equation (18) and store the result in {tilde over         (H)}_(n) ^(μ) ² (jω_(k)).     -   13) Compute {tilde over (D)}_(n)(ω_(k)) based on equation (13).     -   14) If the condition set forth in inequality (12) is met,         proceed to step 15. However, if the condition set forth in         inequality (12) is not met, the test is inconclusive (so return         to step 1 and regenerate the data with smaller frequency steps).     -   15) Compute {tilde over (Δ)}_(n)(jω) corresponding to μ₁ based         on equation (4).     -   16) If the condition set forth in inequality (11) is met,         H(jω_(k)) is not causal. Otherwise, H(jω_(k)) is causal.

The improvements realized by utilizing the causality checker module 18 are demonstrated through some numerical results. The need for accounting the interpolation error is demonstrated first. Tabulated S_(2,1) of a lossless transmission line is considered for causality testing. The line has a characteristic impedance of 75 Ω and a propagation delay of 1 nanosecond. S-parameters are computed between the interval [0, 0.994 GHz] in steps of 70 MHz. To get a result that does not account for interpolation, the result is computed using the Triverio method, and by choosing cubic splines as the interpolation function during numerical integration. To get a result that accounts for the interpolation error, the result is computed using the Asgari method. Corresponding causality plots, comparing the absolute value of the magnitude of the error as determined by equation (4) with the value of the right hand side of equation (12) are shown in FIG. 3A (without accounting for interpolation error) and FIG. 3B (accounting for interpolation error). Per FIG. 3A, the response is declared noncausal (because inequalities (12) and (11) are met). However, this is a false-positive outcome. Per FIG. 3B, the test is declared inconclusive (because inequality (12) is not met) and needs to be repeated with smaller frequency steps.

To demonstrate the improved resolution provided by the causality checker module 18, {tilde over (D)}_(n)(ω)'s computed using the Asgari method and using the causality checker module 18 are compared in FIG. 4A. As can be seen, {tilde over (D)}_(n)(ω) computed using the causality checker module 18 is much smaller than that from using the Asgari method. The larger {tilde over (D)}_(n)(ω) made the test inconclusive (see FIG. 3B). However, this is not the case using the causality checker module 18 (see FIG. 4B). The macromodeling error was also computed. The worst fitting error in the passive macromodel for this data was 0.6×10⁻².

The second example is from Ansys SIwave. The data (9-port data) are between [0, 5 GHz], and are known at nonuniform frequency steps. The causality results from using the Asgari method for S_(4,4) are unbounded, causing the inequality (12) not to be met. However, the results from the proposed method are bounded (see FIG. 5), and the sampled response is declared causal: inequality (12) is met, and inequality (11) is not. The worst fitting error in the passive macromodel for this data is 0.7×10⁻².

The causality checker module 18 may be implemented in hardware, firmware, software and combinations thereof. For embodiments utilizing software, the software may utilize any suitable computer language (e.g., C, C++, C#, Perl, Java, JavaScript, Visual Basic, VBScript, Delphi) and may be embodied permanently or temporarily in any type of machine, component, physical or virtual equipment, storage medium, or propagated signal capable of delivering instructions to a device. The causality checker module 18 (e.g., software application, computer program) may be stored on a computer-readable medium (e.g., disk, device, and/or propagated signal) such that when a computer reads the medium, the functions described herein-above are performed. According to various embodiments, the above-described functionality of the causality checker module 18 may be distributed amongst additional modules and/or sub-modules. For example, the functionality of the causal checker module 18 may be distributed amongst a truncation error bound module, a discretization error bound module, a target fitting error module, etc.

Although the casualty checker module 18 is shown as being integral with the computing system 12, it will be appreciated that according to other embodiments, the casualty checker module 18 is communicably connected to but separate from the computing system 12. For example, according to various embodiments, the causality checker module 18 resides at a remote computing device which is communicably connected to the computing system 12.

As shown in FIG. 1, the system 10 may be communicably connected to a plurality of computing systems 20 via one or more networks 22. Each of the one or more networks 22 may include any type of delivery system including, but not limited to, a local area network (e.g., Ethernet), a wide area network (e.g. the Internet and/or World Wide Web), a telephone network (e.g., analog, digital, wired, wireless, fiber optic, PSTN, ISDN, GSM, GPRS, and/or xDSL), a packet-switched network, a radio network, a television network, a cable network, a satellite network, and/or any other wired or wireless communications network configured to carry data. A given network 22 may include elements, such as, for example, intermediate nodes, proxy servers, routers, switches, and adapters configured to direct and/or deliver data. In general, the system 10 may be structured and arranged to communicate with the computing systems 20 via the one or more networks 22 using various communication protocols (e.g., HTTP, HTTPS, TCP/IP, UDP, WAP, WiFi, Bluetooth) and/or to operate within or in concert with one or more other communications systems.

FIG. 2 illustrates various embodiments of the computing system 12. The computing system 12 may be embodied as one or more computing devices, and includes networking components such as Ethernet adapters, non-volatile secondary memory such as magnetic disks, input/output devices such as keyboards and visual displays, volatile main memory, and the processor 14. Each of these components may be communicably connected via a common system bus. The processor 14 includes processing units and on-chip storage devices such as memory caches.

According to various embodiments, the computing system 12 includes one or more modules which are implemented in software, and the software is stored in non-volatile memory devices while not in use. When the software is needed, the software is loaded into volatile main memory. After the software is loaded into volatile main memory, the processor 14 reads software instructions from volatile main memory and performs useful operations by executing sequences of the software instructions on data which is read into the processor 14 from volatile main memory. Upon completion of the useful operations, the processor 14 writes certain data results to volatile main memory.

FIG. 6 illustrates various embodiments of a method 30. The method 30 may be utilized to test causality for transfer functions of linear time invariant systems. For purposes of simplicity, the method 30 will be described at a high level in the context of testing causality of tabulated S-parameters utilizing the system 10. Prior to the start of the process, S-parameters are tabulated for a given application.

The process starts at block 32, where a truncation error bound for a given S-parameter is determined by the causality checker module 18. The truncation error bound can be denoted as E_(n)(jω), and is the difference between Ĥ_(n)(jω) and H_(n)(jω) as shown in equation (7). As set forth hereinabove, the truncation error bound can be controlled by increasing or decreasing n. The causality checker module 18 determines the value for Ĥ_(n)(jω) based on equation (6) and the value for H_(n)(jω) based on equation (5).

From block 32, the process advances to block 34, where an approximation of the discretization error bound for the given S-parameter is determined by the causality checker module 18. The approximation of the discretization error bound can be denoted as {tilde over (D)}_(n)(ω), and is the difference between two different rational function approximations to H(jω) (i.e., μ₁ and μ₂) with different approximation/target fitting errors (i.e., δ₁ and δ₂). According to various embodiments, the causality checker module 18 determines the respective values for the approximation/target fitting errors δ₁ and δ₂ based on equations (21) and (22), then the respective values for the two rational approximation functions μ₁ and μ₂ based on equation (17). The causality checker module 18 then determines the value for {tilde over (D)}_(n)(ω) based on equation (13), where the respective values for the two different rational function approximations to H(jω) (i.e., {tilde over (H)}_(n) ^(μ) ¹ (jω_(k)) and {tilde over (H)}_(n) ^(μ) ² (jω_(k)) are determined based on equation (18).

From block 34, the process advances to block 36, where the causality checker module 18 determines whether a given tabulated frequency response is causal. According to various embodiments, the causality checker module 18 determines, for a given tabulated frequency response, whether the condition set forth in inequality (12) is met. If the condition set forth in inequality (12) is not met, the test for causality is deemed inconclusive. For such instances, the data may be regenerated using smaller frequency steps and tested once again for causality.

However, if the condition for inequality (12) is met, the causality checker module 18 computes {tilde over (Δ)}_(n)(jω) for μ₁ based on equation (4), then determines whether the condition set forth in inequality (11) is met. If the condition set forth in inequality (11) is met, the causality checker module 18 deems the tabulated frequency response not causal. However, if the condition set forth in inequality (11) is not met, the causality checker module 18 deems the tabulated frequency response causal.

Nothing in the above description is meant to limit the invention to any specific materials, geometry, or orientation of elements. Many part/orientation substitutions are contemplated within the scope of the invention and will be apparent to those skilled in the art. The embodiments described herein were presented by way of example only and should not be used to limit the scope of the claimed invention.

Although the invention has been described in terms of particular embodiments in this application, one of ordinary skill in the art, in light of the teachings herein, can generate additional embodiments and modifications without departing from the spirit of, or exceeding the scope of, the claimed invention. Accordingly, it is understood that the drawings and the descriptions herein are proffered only to facilitate comprehension of the invention and should not be construed to limit the scope thereof. 

What is claimed is:
 1. A system, comprising: a computing device having a processor; and a causality checker module communicably connected to the processor for use in simulating the behavior of a physical system based on data from the physical system, wherein the causality checker module is configured to: utilize the data from the physical system to perform a rational function approximation to a frequency response to determine if a transfer function of a linear time invariant system is causal; and calculate a value for the rational function approximation based on the following equation: $\begin{matrix} {{{{H\left( {j\;\omega} \right)} \approx {\overset{\_}{H}\left( {j\;\omega} \right)}} = {{\sum\limits_{i = 1}^{N_{P}}\;\frac{r_{i}}{{j\;\omega} - p_{i}}} + d}},} & (17) \end{matrix}$ wherein the H(jω) is the frequency response at angular frequency ω, H(jω) is a rational function approximation, N_(p) is a number of poles, r_(i) is the i_(th) residue, p_(i) is i_(th) pole, and d is a direct term; wherein, upon verification of causality of the transfer function, perform a simulation of the physical system using the causal transfer function; wherein the physical system is built or modified based on results of the simulation of the physical system.
 2. The system of claim 1, wherein the transfer function comprises an s-parameter.
 3. The system of claim 1, wherein the linear time invariant system comprises an electrical system.
 4. The system of claim 1, wherein the causality checker module is further configured to calculate a value for a target fitting error for the rational function approximation.
 5. The system of claim 1, wherein the causality checker module is further configured to calculate a value for a truncation error bound associated with the frequency response.
 6. The system of claim 1, wherein the causality checker module is further configured to calculate a value for a discretization error bound based on the following formula: {tilde over (D)} _(n)(ω)≈|{tilde over (H)} _(n) ^(μ) ¹ (jω)−{tilde over (H)} _(n) ^(μ) ² (jω)|,  (13) wherein μ₁ and μ₂ are two different interpolating functions.
 7. The system of claim 6, wherein the causality checker module is further configured to calculate values for the expressions {tilde over (H)}_(n) ^(μ) ¹ (jω) and {tilde over (H)}_(n) ^(μ) ² (jω) based on the following equation: $\begin{matrix} {{{{\overset{\_}{H}}_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{\overset{\_}{H}}\left( {j\;\omega} \right)} + {\frac{1}{j\;\pi}\left( {{{\overset{\_}{H}\left( {j\;\omega} \right)}\;{{??}\left( {\omega,{- \omega_{\max}},\omega_{\max}} \right)}} - {\sum\limits_{q = 1}^{n}\;{{\overset{\_}{H}\left( {j\;{\overset{\_}{\omega}}_{q}} \right)}{{??}\left( {{\overset{\_}{\omega}}_{q},{- {\overset{\;}{\omega}}_{\max}},\omega_{\max}} \right)}{\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\frac{\omega - {\overset{\_}{\omega}}_{p}}{{\overset{\_}{\omega}}_{q} - {\overset{\_}{\omega}}_{p}}}}} + {\sum\limits_{i = 1}^{N_{P}}\;{\frac{r_{i}}{{j\;\omega} - p_{i}}{\ln\left( \frac{{j\; p_{i}} + \omega_{\max}}{{j\; p_{i}} - \omega_{\max}} \right)}{\prod\limits_{p = 1}^{n}\frac{\omega - {\overset{\_}{\omega}}_{q}}{{{- j}\; p_{i}} - {\overset{\_}{\omega}}_{q}}}}}} \right)}}},} & (18) \end{matrix}$ wherein L_(H)(jω) is the Lagrange interpolation polynomial for H(jω).
 8. The system of claim 1, wherein the causality checker module is further configured to determine if the condition of the following equation is met: E _(n) ^(tot)(ω_(k))=T _(n)(ω_(k))+{tilde over (D)}(ω_(k))≦A ∀k,  (12) where E_(n)(jω) is a truncation error based on H_(n)(jω).
 9. The system of claim 1, wherein the causality checker module is further configured to determine if the condition of the following inequality is met: |{tilde over (Δ)}_(n)(jω _(k))|>T _(n)(ω_(k))+D _(n)(ω_(k))∃k,  (11) where D_(n)(jω) is the error in numerically computing H_(n)(jω) numerically with finite-band-width tabulated response.
 10. The system of claim 1, wherein the causality checker module is further configured to determine causality of multi-port tabulated data.
 11. The system of claim 1, wherein the physical system is an electrical network, wherein the electrical network is build or modified based on the simulation of the electrical network.
 12. A method, implemented at least in part by a computing device, for testing causality of a transfer function of a linear time invariant system for simulating the behavior of a physical system based on data from the physical system, the method comprising: determining a value of a truncation error bound for a frequency response associated with the linear time invariant system that is developed using the data from the physical system, wherein the determining is performed by the computing device; determining a value for an approximation for a discretization error bound for the frequency response utilizing a rational function approximation to the frequency response, wherein the determining is performed by the computing device, wherein determining the value for the approximation for the discretization error bound comprises determining a value for the rational function approximation based on the following equation: $\begin{matrix} {{{{H\left( {j\;\omega} \right)} \approx {\overset{\_}{H}\left( {j\;\omega} \right)}} = {{\sum\limits_{i = 1}^{N_{P}}\;\frac{r_{i}}{{j\;\omega} - p_{i}}} + d}},} & (17) \end{matrix}$ wherein the H(jω) is the frequency response at angular frequency ω, H(jω) is a rational function approximation, N_(p) is a number of poles, r_(i) is the i_(th) residue, p_(i) is i_(th) pole, and d is a direct term; determining whether the transfer function is causal based on the value for the approximation for the discretization error bound, wherein the determining is performed by the computing device; wherein, upon verification of causality of the transfer function, a simulation of the physical system is performed using the causal transfer function; wherein the physical system is built or modified based on results of the simulation of the physical system.
 13. The method of claim 12, wherein determining the value of the truncation error bound comprises determining the value for a frequency response associated with an electrical system.
 14. The method of claim 12, wherein determining the value for the approximation for the discretization error bound comprises setting amplitude A in the following equation to a predetermined value: E _(n) ^(tot)(ω_(k))=T _(n)(ω_(k))+{tilde over (D)}(ω_(k))≦A ∀k,  (12) where E_(n)(jω) is a truncation error based on H_(n)(jω).
 15. The method of claim 12, wherein determining the value for the approximation for the discretization error bound comprises calculating a value for a target fitting error for the rational function approximation.
 16. The method of claim 12, wherein determining the value for the approximation for the discretization error bound further comprises calculating a value for a discretization error bound based on the following equation: {tilde over (D)} _(n)(ω)≈|{tilde over (H)} _(n) ^(μ) ¹ (jω)−{tilde over (H)} _(n) ^(μ) ² (jω)|,  (13) wherein μ₁ and μ₂ are two different interpolating functions.
 17. The method of claim 12, wherein the causality checker module is further configured to calculate values for the expressions {tilde over (H)}_(n) ^(μ) ¹ (jω) and {tilde over (H)}_(n) ^(μ) ² (jω) based on the following equation: $\begin{matrix} {{{{\overset{\sim}{H}}_{n}\left( {j\;\omega} \right)} = {{\mathcal{L}_{\overset{\_}{H}}\left( {j\;\omega} \right)} + {\frac{1}{j\;\pi}\left( {{{\overset{\_}{H}\left( {j\;\omega} \right)}\;{{??}\left( {\omega,{- \omega_{\max}},\omega_{\max}} \right)}} - {\sum\limits_{q = 1}^{n}\;{{\overset{\_}{H}\left( {j\;{\overset{\_}{\omega}}_{q}} \right)}{{??}\left( {{\overset{\_}{\omega}}_{q},{- \omega_{\max}},\omega_{\max}} \right)}{\prod\limits_{\underset{p \neq q}{p = 1}}^{n}\frac{\omega - {\overset{\_}{\omega}}_{p}}{{\overset{\_}{\omega}}_{q} - {\overset{\_}{\omega}}_{p}}}}} + {\sum\limits_{i = 1}^{N_{P}}\;{\frac{r_{i}}{{j\;\omega} - p_{i}}{\ln\left( \frac{{j\; p_{i}} + \omega_{\max}}{{j\; p_{i}} - \omega_{\max}} \right)}{\prod\limits_{q = 1}^{n}\frac{\omega - {\overset{\_}{\omega}}_{q}}{{{- j}\; p_{i}} - {\overset{\_}{\omega}}_{q}}}}}} \right)}}},} & (18) \end{matrix}$ wherein L_(H)(jω) is the Lagrange interpolation polynomial for H(jω).
 18. The method of claim 12, wherein determining whether the transfer function is causal comprises determining whether an S-parameter is causal.
 19. The method of claim 18, wherein determining whether the s-parameter is causal comprises calculating a value for an approximation of an upper bound of the discretization error based on the following equation: {tilde over (D)} _(n)(ω)≈|{tilde over (H)} _(n) ^(μ) ¹ (jω)−{tilde over (H)} _(n) ^(μ) ² (jω)|,  (13) wherein μ₁ and μ₂ are two different interpolating functions.
 20. The method of claim 18, wherein determining whether the S-parameter is causal comprises determining whether the following inequality is met: E _(n) ^(tot)(ω_(k))=T _(n)(ω_(k))+{tilde over (D)}(ω_(k))≦A ∀k,  (12) where E_(n)(jω) is a truncation error based on H_(n)(jω).
 21. The method of claim 18, wherein determining whether the s-parameter is causal comprises calculating a value for a reconstruction error based on the following equation: {tilde over (Δ)}_(n)(jω)={tilde over (H)} _(n)(jω)−H(jω),  (4) where {tilde over (Δ)}_(n)(jω_(k)) is the different between H(jω) and a generalized Hilbert transform H_(n)(jω).
 22. The method of claim 18, wherein determining whether the S-parameter is causal comprises determining whether the following inequality is met: |{tilde over (Δ)}_(n)(jω _(k))|>T _(n)(ω_(k))+D _(n)(ω_(k))∃k,  (11) where D_(n)(jω) is the error in numerically computing H_(n)(jω) numerically with finite-band-width tabulated response.
 23. The method of claim 12, further comprising determining causality of multi-port tabulated data, wherein the determining is performed by the computing device. 